opensourcefandomcom-20200223-history
Tiling window manager
with the screen divided into three tiles.]] In computing, a tiling window manager is a window manager with an organization of the screen into mutually non-overlapping frames, as opposed to the more popular approach of coordinate-based stacking of overlapping objects (windows) that tries to fully emulate the desktop metaphor. History Xerox PARC The first bitmapped graphical user interface was created at Xerox PARC. This GUI (Smalltalk) used the desktop metaphor. Later Xerox PARC also developed CEDAR, the first windowing system using a tiled window manager. The first Xerox Star system tiled application windows, but allowed dialogs and property windows to overlap.Xerox Star Siemens RTL Tiled Window Manager One of the first (created in 1988) tiling WMs was Siemens's RTL, up to today a schoolbook example because of its algorithms of automated window scaling, placement and arrangement, and (de)iconification. RTL ran on X11R2 and R3, mainly on the "native" Siemens systems, eg. SINIX. Andrew Project The Andrew Project (AP or tAP) was a Desktop client system (like early GNOME) for X with a tiling and overlapping wm. Prominent tiling window managers Microsoft Windows w:c:Software:Microsoft Windows has included a window manager since w:c:Software:Windows 95 which, while it follows the traditional stacking approach by default, can optionally also act as a rudimentary tiling window manager. To tile windows, first select them in the taskbar. Multiple windows can be selected while holding the Control key during clicking. Then, right click and from the context menu choose "Tile Vertically" or "Tile Horizontally". However, the wording of these options is misleading. Choosing "Tile Vertically" will cause the windows to tile horizontally but take on a vertical shape, while choosing "Tile Horizontally" will cause the windows to tile vertically but take on a horizontal shape. These options were later changed in Windows Vista to "Show Windows Stacked" and "Show Windows Side by Side". History The first version (w:c:Software:Windows 1.0) featured a tiling window manager, partly because of litigation by Apple claiming ownership of the overlapping window desktop metaphor. But due to complaints, the next version (w:c:Software:Windows 2.0) followed the desktop metaphor. All later versions of the operation system stuck to this approach as the default behaviour. 3rd party addons There are third party programs that add more sophisticated tiling functionality to Windows, similar to what is available in tiling window managers used in other operating systems: * WindowSizer - Tiles windows (shareware) * WinSplit - Tiles windows using keyboard shortcuts (freeware) * HashTWM - Tiling window manager with automatic tiling (MIT/X11) * GridMove - Tiles and arranges windows on sophisticated layouts with hotkeys and multi-monitor support (freeware/donationware) * bug.n - Dynamic, tiling window manager, which tries to clone the functionality of dwm (see list of X window managers) (GPL) * MaxTo - Tiles windows on user-defined grid by intercepting windows that are maximized or using hotkeys. Supports multi-monitor setups (shareware) * Twinsplay - Tiles windows using keyboard shortcuts (trial/closed source) X Window System with a number of terminals and firefox open]] is the little brother of wmii.]] In the X Window System the window manager is a separate program. X itself enforces no specific window management approach and current X protocol version X11 explicitly mentions the possibility of tiling window managers. The Siemens RTL Tiled Window Manager (released in 1988) was the first to implement automatic placement/sizing strategies. Another tiling window manager from this period was the Cambridge Window Manager developed by IBM's Academic Information System group. No new tiling window managers for X were developed for some time. In 2000 both larswm and Ion released a first version. List of tiling window managers for X * awesome — a dwm derivative with window tiling, floating and tagging, written in C and configurable and extensible in Lua. It was the first WM to be ported from Xlib to XCB, and supports D-Bus, pango, XRandR, Xinerama. * dwm — allows for switching tiling layouts by clicking a textual ascii art 'icon' in the status bar. The default is a Larswm-like main area + stacking area arrangement, represented by a []= character glyph. There is also a non-tiling floating layout similar to *evilwm which permits windows to be moved and resized, represented by a fish-like ><>. Third party patches exist to add a golden section-based Fibonacci layout, a grid layout, a gapless grid layout, and a horizontal stacking arrangement. * Echinus — "a window manager for X in spirit of dwm." Like dwm it supports managing windows in floating, tiled and maximized layouts. All the configuration is made via config file in Xresources format, so it is not necessary to recompile echinus every time you change something. Echinus supports a small subset of EWMH to be compatible with external panels and pagers. It draws a border around windows and also an optional title bar. The goal of development is a small, fast window manager without features not strictly related to window management, e.g. menus, panels, etc. * Grid plugin - adds keyboard tiling shortcuts and layouts to the Compiz compositing window manager. * i3 — aims to be "an improved dynamic tiling window manager" inspired by wmii. * Ion — combines tiling with a tabbing interface: the display is manually split in non-overlapping regions (frames). Each frame can contain one or more windows. Only one of these windows is visible and fills the entire frame. * Ion2 — a keyboard friendly window manager. * kahakai — a dual mode WM offering both tiling and stacking capabilities. * Larswm — implements a form of dynamic tiling: the display is vertically split in two regions (tracks). The left track is filled with a single window. The right track contains all other windows stacked on top of each other. * Lucca WM * Matchbox — tiles system trays and a single window, targeting embedded and mobile environments where multiple tiled windows don't fit well. It does not permit overlapping main windows (although, like many tiling window managers, dialog windows are "special", with stacked management), but it accomplishes this by showing only one window, rather than literally tiling of multiple windows. This can be considered as a single-tile layout. * Musca — features manual tiling, multiple screen support, virtual desktops and mouse or keyboard navigation. * plpwm — a configuration of the plwm window manager toolkit that provides tiling. * Qtile — written and configured in Python. * Ratpoison — A keyboard-driven GNU Screen for X. ** StumpWM — Ratpoison's extensible successor rewritten in Common Lisp. * Scrotwm — minimalist, with dynamic xrandr & xinerama support. * subtle * tritium * wmfs * wmii — developed in parallel to dwm by the same author. * XMonad — an extensible WM written in Haskell. Third party tiling applications on Xorg * Tile is a small command allowing tiling windows under a floating window manager. * stiler (formerly known as Poor man's Tiling Window manager) is a simple Python script which does tiling on any window manager. * PyTyle is a manual tiling manager that can slide into any EWMH compliant window manager. Others * The w:c:Software:Oberon operating system from ETH Zurich includes a tiling window manager. * Omero, part of the Plan B operating system developed at URJ Madrid also tiles windows by default. Tiling applications Although tiling is not the default mode of window managers on any widely used platform, most applications already display multiple functions in a similar manner. Examples include email clients, IDEs, "sidebars" in web browsers, and contextual help in Microsoft Office. In addition, HTML frames can be seen as a markup language-based implementation of tiling. The tiling window manager extends this usefulness beyond multiple functions within an application, to multiple applications within a desktop. The Tabbed Document Interface can be a useful adjunct to tiling, as it avoids having multiple window tiles on screen for the same function. References See also * Window manager * Split screen (computer graphics) * IDE-style interface Category:User interface techniques Category:Graphical User Interface